#ifndef GAMEPADINPUT_H
#define GAMEPADINPUT_H
#include <stdint.h>




class GamePadInput{
  public:

    struct JoyPadStatus{
      uint32_t Buttons;
      int X;
      int Y;
      int Z;
      int RX;
      int RY;
      int RZ;
    };
    
    /**
     * @brief 打开手柄 如果失败则抛出字符串异常
     * @return 无
     */
    void Open();

    /**
     * @brief 关闭手柄
     * @return 无
     */
    void Close();

    /**
     * @brief 获取手柄状态
     * @param PadIndex 手柄索引 0~(最大数量-1)
     * @param Status 用于容纳状态信息
     * @return 无
     */
    void GetPadStatus(int PadIndex,JoyPadStatus* Status);

    /**
     * @brief 构造函数
     * @param winHandle 窗口句柄
     * @param MaxNum 最大手柄数量
     * @return 无
     */
    GamePadInput(void* winHandle,int MaxNum);
    ~GamePadInput();


  private:
    void* DeviceHandle;
    void* winHandle;
    int MaxNum;


};




#endif // GAMEPADINPUT_H
